package com.zed.api.games;

import com.zed.api.domain.repository.QueryRepository;

import java.util.List;

/**
 * 游戏仓储
 *
 * @author Zed
 */
public interface GameQueryRepository extends QueryRepository<String, Game> {

    /**
     * 获取运行的所有游戏
     *
     * @return {@link List}
     */
    List<Game> getGames();

    /**
     * 根据用户和所属游戏构建者,返回运行时游戏
     *
     * @param gameBuilderId {@link String},游戏构建Id
     * @return {@link Game},返回运行时游戏,可能为null
     */
    Game getAccountRunningGame(String gameBuilderId);

    /**
     * 根据用户和所属游戏构建者,返回运行时游戏集合
     *
     * @return {@link List},返回运行时游戏,可能为null
     */
    List<Game> getAccountRunningGames();

}